草庐IT

PHP in_array 通配符匹配

全部标签

ruby - Ruby 中的通配符字符串匹配

我想编写一个实用函数/模块,为字符串提供简单的通配符/全局匹配。我不使用正则表达式的原因是用户最终会使用某种配置文件提供匹配模式。我找不到任何这样稳定的gem-试过joker,但设置有问题。我正在寻找的功能很简单。例如,给定以下模式,这里是匹配项:pattern|test-string|match========|=====================|====================*hn|john,johnny,hanna|true,false,false#wildcard,similarto/hn$/i*hn*|john,johnny,hanna|true,true,

ruby-on-rails - 相当于 ruby​​/rails 中的 Array.some

我想在rails中做Array.some的等价物。这是一个应用于我的用例的示例,它是一种更复杂的include?(我想将其应用于*args):ary=[:a,:b,:c,d::x,e::y]#=>[:a,:b,:c,{:d=>:x,:e=>:y}]search=:econtained=ary.some{|x|x==search||x.try(:key?,search)}#=>trueassertcontained,"Weshouldhavefound#{search}"我可以用ary.map来做到这一点,但这意味着遍历整个数组然后再次测试它的内容。我还可以使用ary.drop_whil

ruby - 通过类属性的部分匹配获取所有元素

我正在尝试使用Nokogiri显示来自URL的结果。(本质上是抓取一个URL)。我有一些HTML类似于:MattyMatthewSuzie所以我需要找到所有以单词“matt”开头的元素。我需要做的是保存元素的值和元素名称,以便下次我可以引用它..所以我需要捕获"Matty"and"""Matthew"and""我还没有想出如何捕获元素HTML,但这是我目前拥有的元素(它不起作用!)doc=Nokogiri::HTML(open(url))tmp=""doc.xpath("[class*=matt").eachdo|item|tmp+=item.textend@testy2=tmp

ruby - 命名约定 : Why Array#delete has no exclamation mark at the end?

我正在学习Ruby,我发现按照惯例,方法名称末尾的感叹号表示该方法以某种方式修改了self。为什么Array#delete不像slice!那样以感叹号结尾,因为delete从self中删除一个元素?我错过了一些基本的东西吗? 最佳答案 引用Matz(Ruby的总工程师):Thebang(!)doesnotmean"destructive"norlackofitmeannondestructiveeither.Thebangsignmeans"thebangversionismoredangerousthanitsnonbangcou

arrays - ruby 数组循环总是成对

我有以下数组:a=['sda','sdb','sdc','sdd']现在我想遍历这些条目,但总是有两个元素。我现在这样做如下:whileb=a.shift(2)#bisnow['sda','sdb']or['sdc','sdd']end这感觉有点不对劲,有没有更好的方法呢?有没有一种方法可以轻松获得类似[['sda','sdb'],['sdc','sdd']]之类的东西?我读了http://www.ruby-doc.org/core-1.9.3/Array.html但我没有找到有用的东西...... 最佳答案 您可能想看看Enume

ruby - 删除名称与模式匹配的所有文件

我有多个文件(在一个包含数千个文件的文件夹中),例如:...page_bonus.txtpage_code1.txtpage_code2.txtpage_text1.txtpage_text2.txtpage_text3.txt...如何删除所有page_code*文件?注意:我不想使用FileUtils或shell 最佳答案 Dir::glob支持单个字符通配符(即?)。根据您的示例,您可以使用?在给定目录中找到适当的文件,然后删除它们。Dir.glob('/home/your_username/Documents/page_co

ruby 字符串匹配忽略大小写

我正在尝试创建一个匹配查询,它从两个单词之间的字符串中选择文本。我似乎无法弄清楚如何使搜索不区分大小写。例如考虑文本:contents="catLoremipsumdolorsitamet,consecteturadipiscingelit.Donecblanditfeugiatmi,eulaciniaquamtincidunteu.Doneceleifendadipiscingneque,inportadolorvestibulumat.Curabituridelitvitaenuncfeugiatvarius.Maecenaseuismodeuismodmi,eublanditle

ruby - 正则表达式 - 匹配某些字符后的文本

我想从一些文本中抓取数据并将其转储到一个数组中。将以下文本作为示例数据:|ExampleData|Title:Thisisasampletitle|Content:Thisissamplecontent|Date:12/21/2012我目前正在使用以下正则表达式来抓取“冒号”字符后指定的数据:/((?=:).+)/不幸的是,这个正则表达式也抓取了冒号和冒号后面的空格。如何只抓取数据?此外,我不确定我这样做是否正确..但看起来好像外部括号导致匹配返回数组。这是parens的功能吗?编辑:我正在使用Rubular来测试我的正则表达式 最佳答案

ruby - Array#slice 的重叠等效项

这个问题在这里已经有了答案:Rubyarrayaccess2consecutive(chained)elementsatatime(4个答案)关闭3年前。给定这个Ruby数组:[1,2,3,4,5]像这样迭代它的最简单方法是什么?[[1,2],[2,3],[3,4],[4,5]]还是这个?[[1,2,3],[2,3,4],[3,4,5]]

ruby - 用于匹配一组大括号之间的所有单词的正则表达式

对于我认识的大多数正则表达式专家来说,这是一个简单的问题,但我正在尝试返回句子中某些大括号之间单词的所有匹配项;但是Ruby只返回一个匹配项,我不知道为什么。我正在使用这个例句:sentence=hello{name}is{thing}使用此正则表达式尝试返回“{name}”和“{thing}”:sentence[/\{(.*?)\}/]但是,Ruby只返回“{name}”。谁能解释为什么这两个词不匹配? 最佳答案 你很接近,但使用了错误的方法:sentence="hello{name}is{thing}"sentence.scan